package group2_李星月;

import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;

import javax.swing.text.Style;
import java.awt.datatransfer.DataFlavor;
import java.io.*;
import java.sql.Struct;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by 星月 on 2017/12/21.
 */
public class ComprehensiveWork {
    public static void main(String[] args) {
        System.out.println("---------------欢迎使用作业灵检查作业提交情况-------------------");
        System.out.println(" ");
        System.out.println("检查请按1，退出请按其他数字^-^");
        while (true) {
            Scanner scanner = new Scanner(System.in);
            int index = scanner.nextInt();
            if (index == 1) {
                    Map<String, Integer> map = new HashMap<>();
                    System.out.println("请输入学生名单的存储路径（如：D：//学生名单.txt）：");
                    Scanner scan = new Scanner(System.in);
                    String path1 = scan.nextLine();
                    BufferedReader reader = null;
                    try {
                        reader = new BufferedReader(new FileReader(path1));
                        String stuNo = null;
                        while ((stuNo = reader.readLine()) != null) {
                            map.put(stuNo, 0);
                        }
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    } finally {
                        try {
                            reader.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    //得到某一个文件夹下的所有文件
                    System.out.println("请输入学生作业提交文件的存储路径(如：D://学生已交提价文件的存储文件夹)：");
                    Scanner scan1 = new Scanner(System.in);
                    String path2 = scan1.nextLine();
                    File file = new File(path2);
                if(!file.exists()){
                    System.out.println("亲，路径不存在哦！！！");
                    System.out.println("继续查询请按1，退出请按其他数字^-^");
                }else{
                    File[] files = file.listFiles();//得到此文件夹的所有文件
                    for (File f : files) {
                        String fileName = f.getName();//获得文件名
                        String no = null;
                        //正则表达式
                        Matcher matcher = Pattern.compile("信本2班(\\d+)").matcher(fileName);
                        // Matcher matcher1=Pattern.compile("信本2班");
                        while (matcher.find()) {//如果作业已交则value的值改为1，即已交
                            no = matcher.group(1);
                        }
                        map.put(no, 1);
                    }

                    int n = map.size();
                    int m = files.length;
                    int poor = n - m;
                    System.out.println("应交  " + n + "  人,      实交  " + m + "   人," + " 未交  " + poor + "   人");

                    //打印所有value为0的学号
                    System.out.println("未交作业的人有：");
                    for (Map.Entry<String, Integer> entry : map.entrySet()) {
                        if (entry.getValue() == 0) {
                            System.out.println("    学号： " + entry.getKey());//如果value值为0，则表示没交，打印
                        }
                    }
                    System.out.println("----------------------------------------------------------");
                System.out.println("检查其他作业请按1，退出请按其他任意数字^_^");
                }
            }else{
                    System.out.println("你已经退出！！！");
                    System.out.println("感谢你的使用！！！");
                    break;

            }

        }

    }

}
